export class TreeUtil {
    /**
     * 普通列表转换成树形列表
     * */
    static listToTree = (data: Array<Record<string, any>>, topValue: any = '0', key = 'value', parent = 'parent') => {
        data.forEach(element => {
            if (`${element[parent]}` !== `${topValue}`) {
                data.forEach(ele => {
                    if (`${ele[key]}` === `${element[parent]}`) {
                        if (!ele.children) ele.children = []
                        ele.children.push(element)
                    }
                })
            }
        })
        // 这一步是过滤，按树展开，将多余的数组剔除；
        return data.filter(ele => `${ele[parent]}` === `${topValue}`)
    }


    /**
     * 数据字典属性结构
     * */
    static listToTreeNode = (data: Array<Record<string, any>>, topValue: any = '0') :any=> {
        data.forEach(element => {
            if (`${element.parent}` !== `${topValue}`) {
                data.forEach(ele => {
                    if (`${ele.value}` === `${element.parent}`) {
                        if (!ele.children) ele.children = []
                        ele.children.push(element)
                    }
                })
            }
        })
        // 这一步是过滤，按树展开，将多余的数组剔除；
        return data.filter(ele => `${ele.parent}` === `${topValue}`)

    }
}
